-
- 리액트 상태 관리 라이브러리
- 컴포넌트의 상태 업데이트 관련 로직을 다른 파일로 분리시켜서 효율적으로 관리
- 컴포넌트끼리 똑같은 상태를 공유할 때 여러 컴포넌트를 거치지 않고 전달하거나 업데이트 가능
- 미들웨어 기능을 통해 비동기 작업을 효율적으로 관리
- state는 오직 읽기 전용이야.
직접 바꿀수는 없고, 무조건 action이 dispatch 되어야 한다.
- action 객체를 처리하는 함수가 리듀서야.
리듀서는 정보를 받아서 상태를 어떻게 업데이트 할지를 정의하는데, 순수함수로 작성해야해.
(비동기적인 처리를 하면 안된다는 뜻)
순수하지 않은 API는 사용 못해(Date.now() )
(Math.random() )
- 액션을 발생시킨다.
- 디스패치가 호출>> [스토어]는 리듀서 함수를 실행시킴>> 새로운 상태를 만듬
- 디스패치(action)과 같은 형태로 액션 객체를 파라미터로 넣어서 호출
리덕스를 적용하기 위해 사용된다.
한 개의 프로젝트에는 하나의 스토어만 존재
스토어 안에는 상태, 리듀서, 디스패치, 구독 등 중요한 내장 함수를 가진다.
- 커다란 JSON의 결정체임.
- 스토어 안에 존재하는 state는 아주 신성한 것.
- 현재 상태와 액션 객체를 인자로 받는다.
- 두 값을 참고하여 새로운 상태를 만들어서 반환한다.
- type 필드를 반드시 갖는다.
- 상태에 어떤 변화가 필요하면 발생하는 객체다.
- 변화를 일으킬 때마다 액션객체를 만드는 번거로움을 해결한다.